/*
 * Created by LiuYou on 2020/11/27.
 *
 */

#ifndef EFFECTIVECPP_GRAPHICSCARD_HPP
#define EFFECTIVECPP_GRAPHICSCARD_HPP


#include <memory>
#include <string>


namespace GraphicsCard_ {
    class GraphicsCardImpl;

    class GraphicsCard {
    public:
        GraphicsCard(int graphicsCardId, const std::string& graphicsCardFeature);

        virtual ~GraphicsCard();

        int getGraphicsCardId() const;

        const std::string& getGraphicsCardFeature() const;

        friend std::ostream& operator<<(std::ostream& os, const GraphicsCard& card);

    private:
        std::shared_ptr<GraphicsCardImpl> pImpl;

    };

}


#endif //EFFECTIVECPP_GRAPHICSCARD_HPP
